package model

import "github.com/gogf/gf/v2/os/gtime"

type PmInput struct {
	Id int
}

type PmCreateInput struct {
	Name           string      `json:"name"           description:"名称"`
	OsType         string      `json:"osType" description:"操作系统"`
	Owner          string      `json:"owner"          description:"负责人"`
	Cpu            int         `json:"cpu"            description:"核心数"`
	Memory         int         `json:"memory"         description:"内存g"`
	Disk           int         `json:"disk"           description:"磁盘g"`
	Brand          string      `json:"brand"          description:"品牌"`
	Model          string      `json:"model"          description:"型号"`
	IpAddress      string      `json:"ipAddress"      description:"ip地址"`
	MachineUsage   string      `json:"machineUsage"   description:"用途"`
	PurchaseDate   *gtime.Time `json:"purchaseDate"   description:"采购日期"`
	RecomandStatus string      `json:"recomandStatus" description:"期望状态"`
}

type PmUpdateInput struct {
	Id             int         `json:"id"             description:""`
	OsType         string      `json:"osType" description:"操作系统"`
	Owner          string      `json:"owner"          description:"负责人"`
	Cpu            int         `json:"cpu"            description:"核心数"`
	Memory         int         `json:"memory"         description:"内存g"`
	Disk           int         `json:"disk"           description:"磁盘g"`
	Brand          string      `json:"brand"          description:"品牌"`
	Model          string      `json:"model"          description:"型号"`
	IpAddress      string      `json:"ipAddress"      description:"ip地址"`
	MachineUsage   string      `json:"machineUsage"   description:"用途"`
	PurchaseDate   *gtime.Time `json:"purchaseDate"   description:"采购日期"`
	RecomandStatus string      `json:"recomandStatus" description:"期望状态"`
}

type PmCreateOutput struct {
	Id int
}

type PmGetListOutput struct {
	List  []PmGetListOutputItem `json:"list" description:"列表"`
	Page  int                   `json:"page" description:"分页码"`
	Size  int                   `json:"size" description:"分页数量"`
	Total int                   `json:"total" description:"数据总数"`
}

type PmGetListInput struct {
	OsType         string `json:"osType" description:"操作系统"`
	Owner          string `json:"owner"          description:"负责人"`
	Brand          string `json:"brand"          description:"品牌"`
	Model          string `json:"model"          description:"型号"`
	IpAddress      string `json:"ipAddress"      description:"ip地址"`
	RecomandStatus string `json:"recomandStatus" description:"期望状态"`
	Page           int
	Size           int
}

type PmGetListOutputItem struct {
	Id             int         `json:"id"             description:""`
	Name           string      `json:"name"           description:"名称"`
	OsType         string      `json:"osType" description:"操作系统"`
	Owner          string      `json:"owner"          description:"负责人"`
	Cpu            int         `json:"cpu"            description:"核心数"`
	Memory         int         `json:"memory"         description:"内存g"`
	Disk           int         `json:"disk"           description:"磁盘g"`
	Brand          string      `json:"brand"          description:"品牌"`
	Model          string      `json:"model"          description:"型号"`
	IpAddress      string      `json:"ipAddress"      description:"ip地址"`
	MachineUsage   string      `json:"machineUsage"   description:"用途"`
	PurchaseDate   *gtime.Time `json:"purchaseDate"   description:"采购日期"`
	RecomandStatus string      `json:"recomandStatus" description:"期望状态"`
}

type PmDetailOutput struct {
	VmList []PmDetailVmItem `json:"vmList" description:"虚拟机列表"`
}
type PmDetailVmItem struct {
	Id        int    `json:"id"             description:""`
	Name      string `json:"name"           description:"名称"`
	OsType    string `json:"osType" description:"操作系统"`
	Owner     string `json:"owner"          description:"负责人"`
	IpAddress string `json:"ipAddress"      description:"ip地址"`
}
